﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Practices.Unity;
using Iacym.Entities;
using Iacym.Repository;

namespace Iacym.BusinessLogic
{
    public class MatrimonioBL:IMatrimonioBL
    {
        [Dependency]
        public IMatrimonioRepository matrimoniorepository { get; set; }

        public List<MATRIMONIO> GetAllFromMatrimonio()
        {
            return matrimoniorepository.GetAllFromMatrimonio();
        }

        public List<MATRIMONIO> GetFromMatrimonioByPersona(string descripcion)
        {
            return matrimoniorepository.GetFromMatrimonioByPersona(descripcion);
        }

        public void AdddMatrimonio(MATRIMONIO matrimonio)
        {
            var msg = "";
            var ok = matrimonio.Validate(out msg);
            if (ok)
            {
                //var duplicidad = sexoRepo.ExisteDuplicidad(sexo.Descripcion, sexo.Id);

                //if (!duplicidad)
                //{
                matrimoniorepository.AdddMatrimonio(matrimonio);
                //}
                //else
                //{
                    //var error = string.Format("Ya existe un sexo con la misma descripcion: " + sexo.Descripcion);
                    //throw new Exception(error);
                //}
            }
            else
            {
                throw new Exception(msg);
            }
        }

        public void UpdateMatrimonio(MATRIMONIO matrimonio)
        {
            var msg = "";
            var ok = matrimonio.Validate(out msg);
            if (ok)
            {
                //var duplicidad = sexoRepo.ExisteDuplicidad(sexo.Descripcion, sexo.Id);

                //if (!duplicidad)
                //{
                    matrimoniorepository.UpdateMatrimonio(matrimonio);
                //}
                //else
                //{
                //    var error = string.Format("Ya existe un sexo con la misma descripcion: " + sexo.Descripcion);
                //    throw new Exception(error);
                //}
            }
            else
            {
                throw new Exception(msg);
            }
        }

        public void RemoveMatrimonio(int id)
        {
            matrimoniorepository.RemoveMatrimonio(id);
        }


        public MATRIMONIO GetFromMatrimonioById(int id)
        {
            return matrimoniorepository.GetFromMatrimonioById(id);
        }
    }
}
